package br.com.micronois.poker.helper;

import br.com.micronois.poker.model.Carta;
import br.com.micronois.poker.model.Naipe;
import br.com.micronois.poker.model.enums.NaipesEnum;
import br.com.micronois.poker.util.Constantes;

public class BaralhoHelper {

	
	public static Carta[] carregarCartas(){ 
	
	Carta[] cartas = new Carta[Constantes.QUANTIDADE_CARTAS_BARALHO]; 
	
	Carta[] cartasNaipe = new Carta[Constantes.QUANTIDADE_CARTAS_BARALHO_NAIPE];
	int indiceFinal = 0;
	int indiceInicial = 0;
	
		Naipe[] naipes = new Naipe[Constantes.QUANTIDADE_NAIPES];
	
	for (int i = 1; i <= naipes.length; i++) {
		
		
		switch(i){
	
		case 1:
			naipes[i-1] = new Naipe(NaipesEnum.COPAS.getNaipe());
			break;	
		case 2:
			naipes[i-1] = new Naipe(NaipesEnum.ESPADAS.getNaipe());
			break;
		case 3:
			naipes[i-1] = new Naipe(NaipesEnum.PAUS.getNaipe());
			break;
		case 4:
			naipes[i-1] = new Naipe(NaipesEnum.OUROS.getNaipe());
			break;
		}
		
	}
	

	for (int i = 1; i <= naipes.length; i++) {
		
		
		
		for (int j = 1; j <= cartasNaipe.length; j++) {
				
				cartasNaipe[j-1] = new Carta(naipes[i-1], j);
				indiceFinal++; 
						
		}
		
		for (int j = 0; j <cartasNaipe.length; j++) {
			
			cartas[indiceInicial + j] =cartasNaipe[j]; 
		}
		
		indiceInicial = indiceFinal; 
		cartasNaipe = new Carta[13]; 
		
		
	}
	 
	for (int i = indiceFinal; i < cartas.length; i++) {
		
		cartas[i] = Constantes.JOKER;
		
	}
	
	return cartas; 
	
	}
	
}
